package com.hhit.bigscreenbackmanage.service.impl.tgygl;

import com.hhit.bigscreenbackmanage.dao.tgygl.TTgyglZdgzMapper;
import com.hhit.bigscreenbackmanage.entity.tgygl.TTgyglZdgz;
import com.hhit.bigscreenbackmanage.service.tgygl.TTgyglZdgzService;
import org.seimicrawler.xpath.JXNode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * 重点工作
 */
@Service
public class TTgyglZdgzServiceImpl implements TTgyglZdgzService {

    @Autowired
    private TTgyglZdgzMapper tTgyglZdgzMapper;

    @Override
    public int deleteByPrimaryKey(Integer id) {
        return 0;
    }

    @Override
    public int insert(TTgyglZdgz record) {
        return 0;
    }

    @Override
    public int insertSelective(TTgyglZdgz record) {
        return 0;
    }

    @Override
    public TTgyglZdgz selectByPrimaryKey(Integer id) {
        return null;
    }

    @Override
    public int updateByPrimaryKeySelective(TTgyglZdgz record) {
        return 0;
    }

    @Override
    public int updateByPrimaryKey(TTgyglZdgz record) {
        return 0;
    }

    @Override
    public int insert(List<JXNode> jxNode, int id) throws Exception {
        System.out.println(id);
        TTgyglZdgz tTgyglZdgz = new TTgyglZdgz();

        AtomicInteger yfzdgzIndex = new AtomicInteger();  //x月份重点工作位置

        AtomicInteger fjIndex = new AtomicInteger();     //附件位置

        jxNode.forEach(item->{
            if (item.toString().indexOf("月份重点工作")!=-1) { // yfzdgzIndex
                yfzdgzIndex.set(jxNode.indexOf(item));
            }
            if (item.toString().indexOf("附件1")!=-1) { // fjIndex
                fjIndex.set(jxNode.indexOf(item));
            }
        });

        if (yfzdgzIndex.get()==0) { //不存在x月份重点工作
            return 0;
        }

        //截取出 x月份重点工作 JXNodeList
        List<JXNode> zdgzJxnList = jxNode.subList(yfzdgzIndex.get(), fjIndex.get());

        System.out.println(zdgzJxnList);

        AtomicInteger zyjsrwIndex = new AtomicInteger();  //主要建设任务

        AtomicInteger zyglhdIndex = new AtomicInteger();  //主要管理活动

        AtomicInteger zyglrwIndex = new AtomicInteger();  //主要管理任务

        zdgzJxnList.forEach(item->{
            if (item.toString().indexOf("主要建设任务")!=-1) {
                zyjsrwIndex.set(zdgzJxnList.indexOf(item));
            }
            if (item.toString().indexOf("主要管理活动")!=-1) {
                zyglhdIndex.set(zdgzJxnList.indexOf(item));
            }
            if (item.toString().indexOf("主要管理任务")!=-1) {
                zyglrwIndex.set(zdgzJxnList.indexOf(item));
            }
        });
        if (zyjsrwIndex.get()!=0) {
            List<JXNode> zyjsrwJxnList = null;
            if (zyglhdIndex.get()==0) { //主要工作活动为空
                zyjsrwJxnList = zdgzJxnList.subList(zyjsrwIndex.get(), zyglrwIndex.get());
            } else {
                zyjsrwJxnList = zdgzJxnList.subList(zyjsrwIndex.get(), zyglhdIndex.get());
            }
            tTgyglZdgz.setZyjsrw(zyjsrwJxnList.toString().substring(1, zyjsrwJxnList.toString().length()-1));
        }
        if (zyglhdIndex.get()!=0) {
            List<JXNode> zyglhdJxnList = zdgzJxnList.subList(zyglhdIndex.get(), zyglrwIndex.get());
            tTgyglZdgz.setZyglhd(zyglhdJxnList.toString().substring(1, zyglhdJxnList.toString().length()-1));
        }
        if (zyglrwIndex.get()!=0) {
            List<JXNode> zyglrwJxnList = zdgzJxnList.subList(zyglrwIndex.get(), zdgzJxnList.size());
            tTgyglZdgz.setZyglrw(zyglrwJxnList.toString().substring(1, zyglrwJxnList.toString().length()-1));
        }
        tTgyglZdgz.setFileId(id);

        tTgyglZdgzMapper.insert(tTgyglZdgz);


        return 0;
    }

    @Override
    public List<TTgyglZdgz> selectListByFileId(Integer fileId) {
        List<TTgyglZdgz> resulList = null;
        TTgyglZdgz tTgyglZdgz = new TTgyglZdgz();
        tTgyglZdgz.setFileId(fileId);
        try {
            resulList = tTgyglZdgzMapper.selectByBean(tTgyglZdgz);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return resulList;
    }
}
